package com.ruicar.afs.cloud.afscase.channel.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruicar.afs.cloud.afscase.channel.condition.AffiliationStatusCondition;
import com.ruicar.afs.cloud.afscase.channel.condition.BaseInfoTypeDTO;
import com.ruicar.afs.cloud.afscase.channel.entity.ChannelBaseInfo;

import java.util.List;

/**
 * <p>Description: </p>
 *
 * @author mingzhi.li
 * @version 1.0
 * @date create on 2020-6-9 14:15
 */
public interface ChannelBaseInfoService extends IService<ChannelBaseInfo> {
    List<ChannelBaseInfo> getBaseInfo(AffiliationStatusCondition affiliationStatusCondition);

    IPage<List<ChannelBaseInfo>> getBaseInfoPage(Page page, AffiliationStatusCondition affiliationStatusCondition);

    List<ChannelBaseInfo> getBaseInfoByType(BaseInfoTypeDTO dto);
    // 根据状态和channlId  去判断查询的条件
    List<ChannelBaseInfo> getBaseInfoByStatus(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  非直营的新车二手车都做，直营的只做一种类型
    List<ChannelBaseInfo> getBaseInfoByStatusOtherAll(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  直营的新车二手车都做，非直营的只做一种类型
    List<ChannelBaseInfo> getBaseInfoByStatusOwnAll(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  直营的新车二手车都做，非直营不行
    List<ChannelBaseInfo> getBaseInfoByStatusOnlyOwnAll(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  直营只做一种类型，非直营不行
    List<ChannelBaseInfo> getBaseInfoByStatusOnlyOwnType(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  非直营的新车二手车都做，直营不行
    List<ChannelBaseInfo> getBaseInfoByStatusOnlyOtherAll(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  非直营只做一种类型，直营不行
    List<ChannelBaseInfo> getBaseInfoByStatusOnlyOtherType(BaseInfoTypeDTO dto);

    // 根据状态和channlId  去判断查询的条件  非直营是单一类型  直营是单一类型
    List<ChannelBaseInfo> getBaseInfoByStatusOtherOnlyOwnOnly(BaseInfoTypeDTO dto);
}
